home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / zbpc_460.zip / UTILITY.EXE / CRITERR.BAS < prev    next >
BASIC Source File  |  1990-06-16  |  2KB  |  57 lines

  1. 00010 ' This program demonstrates a technique to set the MS-DOS critical
  2. 00020 ' error handler to your own ZBasic code.  See page A-23 in the manual
  3. 00030 :
  4. 00040 ' save previous vector
  5. 00050 :
  6. 00060 MACHLG &06,&B8,&3524,&CD,&21,&8C
  7. 00070 MACHLG &06,Old_Seg%,&89,&1E,Old_Offset%,&07
  8. 00080 :
  9. 00090 ' set new vector
  10. 00100 :
  11. 00110 Seg% = MEM C : Offset% = LINE "Error Routine"
  12. 00120 MACHLG &1E,&8B,&16,Offset%,&8E,&1E,Seg%,&B8,&2524,&CD,&21,&1F
  13. 00130 :
  14. 00140 ' access drive a: to produce an error (leave door open)
  15. 00150 :
  16. 00160 OPEN "I", 1, "A:TESTFILE.DAT"
  17. 00170 :
  18. 00180 ' reset error vector to previous value
  19. 00190 :
  20. 00200 MACHLG &1E,&8B,&16,Old_Offset%,&8E,&1E
  21. 00210 MACHLG Old_Seg%,&B8,&2524,&CD,&21,&1F
  22. 00220 STOP
  23. 00230 :
  24. 00240 :
  25. 00250 "Error Routine"
  26. 00260 ' start of our own critical error handler
  27. 00270 :
  28. 00280 MACHLG &53,&51,&52,&1E,&06,&8B,&EC,&8E
  29. 00290 MACHLG &5E,&1E,&8E,&46,&20,&89,&3E,Error%
  30. 00300 :
  31. 00310 ' do anything here except disk i/o (see page A-24)
  32. 00320 :
  33. 00330 RESTORE Error%
  34. 00340 READ Error$
  35. 00350 PRINT
  36. 00360 PRINT Error$; " error!"
  37. 00370 PRINT "(Ignore, Retry, Abort)? ";
  38. 00380 DO
  39. 00390  A$ = INKEY$
  40. 00400  A$ = UCASE$(A$)
  41. 00410  I% = INSTR(1,"IRA",A$)
  42. 00420 UNTIL I% > 0
  43. 00430 PRINT A$
  44. 00440 Response% = I% - 1
  45. 00450 IF I% = 3 THEN STOP
  46. 00460 :
  47. 00470 "Do DOS"
  48. 00480 ' return to DOS
  49. 00490 MACHLG &A1,Response%,&07,&1F,&5A,&59,&5B,&CF
  50. 00500 :
  51. 00510 DATA "Write protected","Unknown unit"
  52. 00520 DATA "Drive not ready","Unknown command"
  53. 00530 DATA "Data","Bad request structure length"
  54. 00540 DATA "Seek","Unknown media type"
  55. 00550 DATA "Sector not found","Printer out of paper"
  56. 00560 DATA "Write fault","Read fault","General failure"
  57.